The present disclosure generally relates to the software development, and more specifically to techniques enhancing code review throughput based on separate reviewer and developer profiles.
Code review is an effective mechanism that can be used to verify the end deliverable of a software development process. Coding and design errors, for example, can be introduced during the course of the software development cycle and affect the quality of the end deliverable. During code review, peer developers generally review computer source code for errors, mistakes, and/or vulnerabilities that may be present in the source code. Such code and design errors can include common vulnerabilities, such as format string exploits, memory leaks, logical errors, etc. Uncovering code and design errors before a deliverable gets integrated to production code base can reduce the overall cost and duration of the software development cycle.
For a formal peer review of software, reviewers are generally selected based on proficiency in software language, proficiency in product design, proficiency in domain, past experience, consumption of the end deliverable, etc. Based on technical knowledge, domain knowledge and experience, a given reviewer may view code from a perspective that is different from other reviewers. For example, some reviewers may focus more on business logic and use cases, whereas other reviewers may focus on the efficiency of algorithms in the code. In another example, some reviewers may focus more on nuances of language used for coding, whereas other reviewers may focus on interaction between components. In general, for the same work item, different reviewers often identify different types of errors and/or vulnerabilities.
Typically, for domains (e.g., consumer or mobile) where release cycles are short, effort should be made to improve code review yield per reviewer (e.g., minimize the review cycle length) without impacting quality of the end deliverable. However, due to the inherent nature of a reviewer, certain types of errors may get more focus compared to other types of errors. The errors that a given reviewer tends to focus on may not be errors which the author is more prone to make. In such cases, although a completed review of source code may finish with minor comments and cosmetic changes, there may be serious errors within the source code that are undetected.